啟用Azure Application Insights的使用者體驗,
可以讓我們透過一組產品使用量工具來監控並追蹤使用者
例如:
1.使用者、工作階段、事件
2.漏斗圖
3.保留
4.活頁簿
但是...如果我們需要追蹤使用者在一段時間內所做的行為,
Application Insights就必須需要有每個使用者或工作階段的識別碼!
包括每個自訂事件或頁面檢視畫面中的識別碼...
聽起來有點困難...但實行起來其實很簡單
之前我們不是有稍微提過使用者識別碼嗎?
只要我們照下列程式碼片段去實作ITelemetryInitializer即可
public void Initialize(ITelemetry telemetry)
{
var requestTelemetry = telemetry as RequestTelemetry;
telemetry.Context.User.Id = requestTelemetry.Context.User.Id;
telemetry.Context.Session.Id = requestTelemetry.Context.User.Id;
}
接著只要註冊他就好了(雖然之前說過了...但是由於很重要所以再讓我多講幾遍)
services.AddSingleton<ITelemetryInitializer, MyCustomTelemetryInitializer>();
接著只要發行到Azure就可以了
我們需要使用者識別碼應該在使用者工作階段期間持續存在
是因為需要用他來追蹤使用者在一段時間內的行為
謎之音:所以識別碼最好可以持續使用是嗎?
答:是的
謎之音:那麼要怎麼持續使用呢??
答:例如:
1.服務本身已經有使用者定義了
2.如果服務可存取瀏覽器,直接從Cookie取得即可
關於識別碼我們有以下兩點需要注意與了解:
1.識別碼通常是由Guid或複雜的字串組成,用來專門識別每個使用者
2.如果識別碼包含使用者的個人識別資訊,則最好不要傳送至Application Insights
我們可以傳送此類識別碼做為已驗證的使用者識別碼,但不符合使用案例的使用者識別碼需求